//标题
$(function(){
	
	/**
	 * 将获得的上下班时间放到选择框
	 */
	putWorkTime();
	
	/**
	 * 部门上下班时间修改
	 */
	changeWorkTime();
	
	/**
	 * 提交部门表单
	 */
	$("#deptForm").form({
		url: "/user/dept/edit" ,
		onSubmit:function(){
			var flag=true;
			//先判空
			var inputs=$(".form-content form").find("input");
			if(!checkInputNull(inputs)){
				return false;
			}
			//部门电话格式
			var telPatt= /^\d{3,4}-\d{7,8}$/;
			if(!telPatt.test($("input[name=tel]").val())){
				layer.tips('<span style="color:#aa0000">'+'电话号码格式不正确'+'</span>', $("input[name=tel]"), {
					tips : [ 2, 'rgb(236, 228, 221)' ]
				});
				return false;
			}
			//打卡次数最大限制
			var checkDay=$("input[name=checkDay]").val();
			if(checkDay>31){
				layer.tips('<span style="color:#aa0000">'+'最大打卡不可超过31次'+'</span>', $("input[name=checkDay]"), {
					tips : [ 2, 'rgb(236, 228, 221)' ]
				});
				$("input[name=checkDay]").val('22');
				return false;
			}
			
			//部门邮件格式
			var emailPatt=/\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/;
			if($("input[name=email]").val()!="" && !emailPatt.test($("input[name=email]").val())){
				layer.tips('<span style="color:#aa0000">'+'邮箱格式不正确'+'</span>', $("input[name=email]"), {
					tips : [ 2, 'rgb(236, 228, 221)' ]
				});
				return false;
			}
			
			//传真格式
			var telPatt= /^\d{3,4}-\d{7,8}$/;
			if($("input[name=fax]").val()!="" && !telPatt.test($("input[name=fax]").val())){
				layer.tips('<span style="color:#aa0000">'+'传真格式不正确'+'</span>', $("input[name=fax]"), {
					tips : [ 2, 'rgb(236, 228, 221)' ]
				});
				return false;
			}
		},
		success:function(data){
			if(data){
				layer.msg('保存成功',{shift: -1,time:1000}, function(){
					refreshPanel(getUrlPrefix("/user/dept"),"部门管理");
				});
			}else{
				layer.msg('保存失败',{shift: -1,time:1000});
			}
	    }
	});
	
	/**
	 * 提交职位表单
	 */
	$("#officeForm").form({
		url: "/user/dept/office/edit" ,
		onSubmit:function(){
			var flag=true;
			//先判空
			var inputs=$(".form-content form").find("input");
			if(!checkInputNull(inputs)){
				return false;
			}
			//判断薪酬是否为两位小数的正实数
			var salPatt=/^[0-9]+(.[0-9]{2})?$/;
			if(!salPatt.test($("input[name=salBase]").val())){
				layer.tips('<span style="color:#aa0000">'+'薪酬格式不正确'+'</span>', $("input[name=salBase]"), {
					tips : [ 2, 'rgb(236, 228, 221)' ]
				});
				return false;
			}
		},
		success:function(data){
			if(data){
				layer.msg('保存成功',{shift: -1,time:1000}, function(){
					refreshPanel(getUrlPrefix("/user/dept/office?id="+$("#officeForm").attr("data-id")),"查看职位");
				});
			}else{
				layer.msg('保存失败',{shift: -1,time:1000});
			}
	    }
	});
	
	/**
	 * 用户关键字查询
	 */
	var key=null;
	var deptId=null;
	$("#userSearch").form({
		url:"/user/dept",
		onSubmit:function(){
			key=$("input[name=key]").val();
			
		},
		success:function(data){
			refreshPanel(getUrlPrefix("/user/dept?key="+key),"部门管理");
		}
	});
	
	/**
	 * 提交用户表单
	 */
	$("#userForm").form({
		url: "/user/user/edit",
		onSubmit:function(){
			//验证邮件
			var emailPatt=/\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/;
			if($("input[name=email]").val()!="" && !emailPatt.test($("input[name=email]").val())){
				layer.tips('<span style="color:#aa0000">'+'邮箱格式不正确'+'</span>', $("input[name=email]"), {
					tips : [ 2, 'rgb(236, 228, 221)' ]
				});
				return false;
			}
		},
		success:function(data){
			if(data){
				layer.msg('保存成功',{shift: -1,time:1000}, function(){
					refreshPanel(getUrlPrefix("/user/user"),"用户管理");
				});
			}else{
				layer.msg('保存失败',{shift: -1,time:1000});
			}
	    }
	});
	
});

/**
 * 判断输入框是否为空
 * @returns
 */
function checkInputNull(inputs){
	var flag=true;
	inputs.each(function(){
		if(!$(this).is("input[type=file]") && !$(this).is("input[name=email]") && !$(this).is("input[name=fax]")&& !$(this).is("input[name=id]")){
			if($(this).val()==""){
				layer.tips('<span style="color:#aa0000">'+'该项信息不能为空'+'</span>', $(this), {
					tips : [ 2, 'rgb(236, 228, 221)' ]
				});
				flag=false;
				return false;
			}
		}
	});
	return flag;
}

/**
 * 部门按关键字查询
 * @returns
 */
function deptSearch(){
	var title=$(".content-header h1").text();
	refreshPanel(getUrlPrefix("/user/dept?key="+$("input[name=key]").val()),title);
}

/**
 * 获取上下班时间填入选择框
 * @returns
 */
function putWorkTime(){
	var beginTime=$("input[name=beginTime]").val();
	var endTime=$("input[name=endTime]").val();
	if(beginTime && endTime){
		var begin=beginTime.split(":");
		var end=endTime.split(":");
		$("select[name=hour1] option").each(function(){
			if($(this).val()==appendZero(begin[0])){
				$(this).attr("selected",true);
			}
		});
		$("select[name=minute1] option").each(function(){
			if($(this).val()==appendZero(begin[1])){
				$(this).attr("selected",true);
			}
		});
		$("select[name=hour2] option").each(function(){
			if($(this).val()==appendZero(end[0])){
				$(this).attr("selected",true);
			}
		});
		$("select[name=minute2] option").each(function(){
			if($(this).val()==appendZero(end[1])){
				$(this).attr("selected",true);
			}
		});
	};
}

/**
 * 获取改变后的部门上下班时间到隐藏域
 * @param e
 * @returns
 */
function changeWorkTime(){
	var time1=$("select[name=hour1]").val()+":"+$("select[name=minute1]").val()+":00";
	$("input[name=beginTime]").val(time1);
	var time2=$("select[name=hour2]").val()+":"+$("select[name=minute2]").val()+":00";
	$("input[name=endTime]").val(time2);
}

/**
 * 移动部门，改变层级
 * @param e
 * @returns
 */
function changeGrade(e,action){
	var isFirst=$(e).parents("tr").prevAll("tr").length==1;//判断是否是第一个
	var isLast=$(e).parents("tr").nextAll("tr").length==0;//判断是否是最后一个
	var thisTr=$(e).parents("tr");//当前层级
	var otherTr;//要变的层级
	if(action=='up' && !isFirst){
		otherTr=$(e).parents("tr").prev();
	}else if(action=='down' && !isLast){
		otherTr=$(e).parents("tr").next();
	}
	$.get("/user/dept/updategrade",{
		thisId:thisTr.attr("data-id"),
		otherId:otherTr.attr("data-id")
	},function(){
		//修改层级
		var thisText=thisTr.find("td:first").text();
		var otherText=otherTr.find("td:first").text();
		if(action=='up'){
			thisTr.insertBefore(otherTr);
		}else{
			thisTr.insertAfter(otherTr);
		}
		thisTr.find("td:first").text(otherText);
		otherTr.find("td:first").text(thisText);
	});
}

/**
 * 动态根据选择的部门获取职位
 * @returns
 */
function changeOffice(e){
	var id=$(e).find("option:selected").val();
	$.get("/user/dept/office/get",{
		id,id
	},function(data){
		var office=null;
		if($("select[name=deptOffice]").length>0){
			office=$("select[name=deptOffice]");
		}else{
			office=$("select[name=leader]");
		}
		console.log(office);
		office.html("");
		var optionTip=$("<option>").val("").text("-选择职位-");
		office.append(optionTip);
		$.each(data,function(){
			var option=$("<option>").val(this.id).text(this.name);
			office.append(option);
		});
	});
}

/**
 * 用户按关键字查询
 * @returns
 */
function userSearch(){
	var title=$(".content-header h1").text();
	refreshPanel(getUrlPrefix("/user/user?key="+$("input[name=key]").val()+"&deptId="+$("select[name=dept] option:selected").val()),title);
}

/**
 * 上一步
 * @param num
 * @param e
 * @returns
 */
function skitInfo(num,e){
	var fieldset=$(e).parents("fieldset");//获得该页
	fieldset.hide();
	fieldset.siblings(".info"+num).show();
}

/**
 * 基本信息下一步
 * @param e
 * @returns
 */
function baseInfoNext(e){
	var flag=true;
	//先判空
	var inputs=$(e).parents(".info1").find("input");
	if(!checkInputNull(inputs)){
		return false;
	}
	//判断身份证格式
	var identityPatt=/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/;
	if(!identityPatt.test($("input[name=identity]").val())){
		layer.tips('<span style="color:#aa0000">'+'身份证号格式不正确'+'</span>', $("input[name=identity]"), {
			tips : [ 2, 'rgb(236, 228, 221)' ]
		});
		return false;
	}
	
	//判断用户名是否已经被使用(只有是添加新用户时验证)
	if($("input[name=id]").val()==""){
		var name=$("input[name=name]").val();
		$.ajax({
			url : "/user/user/findname",
			type : "get",
			async : false,
			data : {
				name:name
			},
			success : function(data) {
				if(data){
					layer.tips('<span style="color:#aa0000">'+'用户名已被使用'+'</span>', $("input[name=name]"), {
						tips : [ 2, 'rgb(236, 228, 221)' ]
					});
					flag=false;
				}
			}
		});
		if(!flag){
			return false;
		}
	}
	
	//判断密码
	if($("input[name=password]").val().length<6 || $("input[name=password]").val().length>12){
		layer.tips('<span style="color:#aa0000">'+'密码长度请在6-12位之间'+'</span>', $("input[name=password]"), {
			tips : [ 2, 'rgb(236, 228, 221)' ]
		});
		return false;
	}
	
	//判断手机号码格式
	var telPatt=/0?(13|14|15|18)[0-9]{9}/;
	if(!telPatt.test($("input[name=tel]").val())){
		layer.tips('<span style="color:#aa0000">'+'手机号码格式不正确'+'</span>', $("input[name=tel]"), {
			tips : [ 2, 'rgb(236, 228, 221)' ]
		});
		return false;
	}
	
	//没问题则跳转
	if(flag){
		skitInfo(2,e);
	}
}

/**
 * 职业信息下一步
 * @param e
 * @returns
 */
function DeptInfoNext(e){
	//判空
	var inputs=$(".info2 select");
	inputs.push($(".info2 input[name=sal]"));
	if(!checkInputNull(inputs)){
		return false;
	}
	//判断薪酬是否为两位小数的正实数
	var salPatt=/^[0-9]+(.[0-9]{2})?$/;
	if(!salPatt.test($("input[name=sal]").val())){
		layer.tips('<span style="color:#aa0000">'+'薪酬格式不正确'+'</span>', $("input[name=sal]"), {
			tips : [ 2, 'rgb(236, 228, 221)' ]
		});
		return false;
	}
	
	skitInfo(3,e);
}

/**
 * 用户账号信息设置
 * @param e
 * @returns
 */
function accountSet(e){
	var target=$(e).next();
	var targetName=target.find("input[name=accountName]").val()
	var targetPwd=target.find("input[name=accountPwd]").val()
	var index=layer.open({
		  type: 1,
		  title :false,
		  content: target,
		  closeBtn: 0,
		  btn:['保存', '关闭'],
		  yes:function(){
			  var inputs=target.find("input");
			  if(!checkInputNull(inputs)){
				  return false;
			  }
			  $.post("/user/user/update",{
				  userId:target.find("input[name=userId]").val(),
				  name:target.find("input[name=accountName]").val(),
				  pwd:target.find("input[name=accountPwd]").val()
			  },function(data){
				  layer.msg('保存成功',{shift: -1,time:1000});
				  layer.close(index);
			  });
		  },
		  btn2: function(index, layero){
			  target.find("input[name=accountName]").val(targetName);
			  target.find("input[name=accountPwd]").val(targetPwd);
		  }
	});
}


/**
 * 用流读取图片
 * @param e
 * @returns
 */
function showPic(e){
	console.log(e.value);
	//先判断格式正不正确
	var pattern = /(\.*.jpg$)|(\.*.png$)|(\.*.jpeg$)|(\.*.gif$)|(\.*.bmp$)/;
	if (!pattern.test($(e).val().toLowerCase())) {
		layer.alert("图片格式不正确");
		return;
	}
	console.log(e.files[0]);
	if (getObjectURL(e.files[0])){
		$("#head").attr("src", getObjectURL(e.files[0]));//预览图片
		$("input[name=photo]").val(e.files[0].name);
	}
}

/**
 * 建立url
 * @param file
 * @returns
 */
function getObjectURL(file) {
	var url = null;
	if (window.createObjectURL != undefined) { // basic
		url = window.createObjectURL(file);
	} else if (window.URL != undefined) { // mozilla(firefox)
		url = window.URL.createObjectURL(file);
	} else if (window.webkitURL != undefined) { // webkit or chrome
		url = window.webkitURL.createObjectURL(file);
	}
	return url;
}